home *** CD-ROM | disk | FTP | other *** search
/ Belgian Amiga Club - ADF Collection / BS1 part 43.zip / Sources C- WorkDisk V.adf / image / imagebs1.c < prev    next >
C/C++ Source or Header  |  1987-02-15  |  4KB  |  180 lines

  1. #include "exec/types.h"
  2. #include "intuition/intuition.h"
  3.  
  4. struct IntuitionBase *IntuitionBase;
  5. struct Window *NoBorder;
  6. struct GfxBase *GfxBase;
  7. struct IntuiMessage *mesg;
  8. struct RastPort *r;
  9. struct ViewPort *vp;
  10. struct Screen *Scrn;
  11.  
  12. USHORT bs1smallData[] =
  13. {
  14. 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  15. 0x7CF0,0x3E70,0x0000,0xE61F,0xE73D,0xFC00,
  16. 0x7CF8,0xFF30,0x0001,0xE79F,0xF33C,0x1C00,
  17. 0x7CFC,0xFF90,0x0003,0xE78F,0xF93C,0x3000,
  18. 0x7CF0,0x7FC0,0x0003,0xE787,0xFC3D,0xF000,
  19. 0x7CF8,0x3FE0,0x0003,0xE793,0xFE3C,0x7000,
  20. 0x7CFC,0x9FF0,0x0001,0xE799,0xFF3C,0x0C00,
  21. 0x7CF8,0xCFE0,0x0000,0xE71C,0xFF3C,0x7C00,
  22. 0x0000,0x0000,0x0000,0x0000,0x0000,0x01E1
  23.  
  24. };
  25.  
  26. struct Image bs1small =
  27. {
  28. 0,0,          /* LeftEdge, TopEdge */
  29. 87,9,1,     /* Width, Height, Depth */
  30. &bs1smallData[0],
  31. 1,0,       /* PlanePick, PlaneOnOff */
  32. NULL        /* Pointer to next Image */
  33. };
  34.  
  35.  
  36.  
  37. #define INTUITION_REV 0
  38. #define GRAPHICS_REV 0
  39. main()
  40. {
  41.  ULONG flags,mclass;
  42.  SHORT x,y,w,h,d;
  43.  USHORT mode;
  44.  UBYTE *name,c0,c1;
  45.  VOID OpenALL();
  46.  double ran(), rannr;
  47.  OpenALL();
  48.  
  49.  
  50.  /* ======Open een lores custom screen====== */
  51.  
  52.  y=0;
  53.  w=320;
  54.  h=200;
  55.  d=5; /* max 32 colors ! */
  56.  c0=0x00;
  57.  c1=0x01;
  58.  mode=NULL;
  59.  
  60.  Scrn=(struct Screen *)
  61.          make_screen(y,w,h,d,c0,c1,mode,NULL);
  62.  
  63.  /* ======open een borderless window ====== */
  64.  
  65.  x=y=0;
  66.  w=320;
  67.  h=200;
  68.  flags=ACTIVATE|NOCAREREFRESH|BORDERLESS|GIMMEZEROZERO;
  69.  NoBorder=(struct Window *)
  70.              make_window(x,y,w,h,NULL,flags,Scrn);
  71.  
  72.  /* ======geen screentitel====== */
  73.  
  74.  ClearMenuStrip(NoBorder);
  75.  
  76.  
  77.   r=NoBorder->RPort;
  78.  vp=ViewPortAddress(NoBorder);
  79.  
  80. for(x=0;x<32;x++) SetRGB4(r,x,x%16,x%16,(15-x)%16);
  81.  
  82. for(;;)
  83. {
  84.   DrawImage(r,&bs1small,(LONG) ( (rannr=ran() ) * (320.0-87.0) ), (LONG) ( (rannr=ran() ) * (199.0-9.0)  ) );
  85.  
  86.  if( (mesg=(struct IntuiMessage *) GetMsg(NoBorder->UserPort)) != NULL)
  87.  { 
  88.   ReplyMsg(mesg);
  89.   break;
  90.  }
  91.  
  92. }
  93.  
  94.  while( (mesg=(struct IntuiMessage *) GetMsg(NoBorder->UserPort)) != NULL)
  95.   ReplyMsg(mesg);
  96.  
  97.      CloseWindow(NoBorder);
  98.      CloseScreen(Scrn);
  99.      CloseLibrary(GfxBase);
  100.  
  101. }
  102.  /*========================================================================*/
  103.  
  104.  VOID OpenALL()
  105.  {
  106.  /* ======open Intuition====== */
  107.  
  108.  IntuitionBase=(struct IntuitionBase *)
  109.             OpenLibrary("intuition.library",INTUITION_REV);
  110.  
  111.  if(IntuitionBase==NULL)
  112.    exit(FALSE);
  113.  
  114.  /* ======open the Graphics Library====== */
  115.  
  116.  GfxBase=(struct GfxBase *)
  117.            OpenLibrary("graphics.library",GRAPHICS_REV);
  118.  
  119.  if(GfxBase==NULL)
  120.    exit(FALSE);
  121.  }
  122. make_window(x,y,w,h,name,flags,screen)
  123. SHORT x,y,w,h;
  124. UBYTE *name;
  125. ULONG flags;
  126. struct Screen *screen;
  127.  
  128. {
  129.  struct NewWindow NewWindow;
  130.  
  131.  NewWindow.LeftEdge = x;
  132.  NewWindow.TopEdge = y;
  133.  NewWindow.Width = w;
  134.  NewWindow.Height = h;
  135.  NewWindow.DetailPen = -1;
  136.  NewWindow.BlockPen = -1;
  137.  NewWindow.Title = name;
  138.  NewWindow.Flags = flags;
  139.  NewWindow.IDCMPFlags = MOUSEBUTTONS;
  140.  NewWindow.Type = CUSTOMSCREEN;
  141.  NewWindow.FirstGadget = NULL;
  142.  NewWindow.CheckMark = NULL;
  143.  NewWindow.Screen = screen;
  144.  NewWindow.BitMap = NULL;
  145.  NewWindow.MinWidth = 0;
  146.  NewWindow.MinHeight = 0;
  147.  NewWindow.MaxWidth = 0;
  148.  NewWindow.MaxHeight = 0;
  149.  
  150.  return(OpenWindow(&NewWindow));
  151.  
  152. }
  153.  
  154.  
  155. make_screen(y,w,h,d,color0,color1,mode,name)
  156. SHORT y,w,h,d;
  157. UBYTE color0,color1,*name;
  158. USHORT mode;
  159. {
  160.  struct NewScreen NewScreen;
  161.  
  162.  NewScreen.LeftEdge = 0;
  163.  NewScreen.TopEdge = y;
  164.  NewScreen.Width = w;
  165.  NewScreen.Height = h;
  166.  NewScreen.Depth = d;
  167.  NewScreen.DetailPen = color0;
  168.  NewScreen.BlockPen = color1;
  169.  NewScreen.ViewModes = mode;
  170.  NewScreen.Type = CUSTOMSCREEN;
  171.  NewScreen.Font = NULL;
  172.  NewScreen.DefaultTitle = name;
  173.  NewScreen.Gadgets = NULL;
  174.  NewScreen.CustomBitMap = NULL;
  175.  
  176.  return(OpenScreen(&NewScreen));
  177. }
  178.  
  179.  
  180.